1. Field of the Invention
The present invention relates to a flow control apparatus and flow control method for data packets. In particular, the invention relates to a flow control apparatus within a data switching network formed of a plurality of switching hubs connected in a hierarchy and a plurality of terminal groups which are assigned respective group identifiers, with the data packets being transferred between the terminals via ports of the switching hubs, and with at least some of the ports utilizing the identifiers of respectively different groups for multiplexed operation.
2. Description of Prior Art
The word “port” of a switching hub as used herein is to be understood to signify a port that is a combination of an input section and an output section, for respectively receiving and transmitting data packets. The term “terminal” is to be understood as broadly referring to a device such as a computer installation which can be a source/destination for standard format data packets, and in particular will be assumed to operate in accordance with the Ethernet (registered trade mark) standards. Furthermore the term “connection” between a terminal and a port of a hub in a switching network signifies that a path exists (external to the switching hub) for transmitting data packets to/from the terminal via that port.
FIG. 33A is a conceptual system block diagram for describing a prior art example of a data switching network which performs flow control by utilizing a switching hub. Letters A to D denote respective terminals each of which can receive and transmit data packets in accordance with Ethernet (registered trade mark) standards, applying full duplex flow control as specified in IEEE802.3x. In the following, “registered trade mark” will be abbreviated to “T.M.”. These terminals A to D are respectively connected directly to ports P1 to P4 of a switching hub designated as SW1. It will be assumed that as indicated by the two arrowed dotted lines in FIG. 33A, the switching hub SW1 is transferring data packets which are transmitted from the terminal B to the terminal A while at the same time data packets are also being transmitted from the terminal C addressed to the terminal A.
Each of the ports P1 to P4 is provided with a corresponding input buffer, and if the amount of data packets received from the terminals B and C by the switching hub SW1 through the ports P2, P3 in a unit time interval exceeds the rate at which data can be transmitted from port P1 to the terminal A (i.e., the output port speed of port P1) then excess data packets are temporarily stored internally within the input buffers of these ports.
However if such storage of input data packets continues for an excessive duration, then the input buffers will overflow, and packets will thereby be lost.
For that reason, when it is detected that such overflow is about to occur, the switching hub SW1 generates a packet having a standardized form, referred to herein as a “pause packet”, and transmits that to a terminal from which data packets are being received. In this example, the pause packet is transferred from the port P3 to the terminal C. The terminal is configured to respond to reception of a pause packet by halting further transmission of data packets during a time interval which is specified in the pause packet. The switching hub SW1 can thereby recover from the condition of input data packet overflow.
With such a flow control method, the ports P1 to P4 are controlled individually. FIG. 33B illustrates a network formed of a plurality of switching hubs SW2 to SW5 which are arranged in a hierarchy configuration, with the ports of hub SW2 each performing multiplexed control of data communication for a plurality of groups of terminals, with each group formed of a plurality of terminals which in general can communicate only with other terminals within the same group. That is to say, the groups can be utilized as respective VLANs (virtual local-area networks). The terminal groups are designated by respective identifier numbers, e.g., 1, 3 and 4 in FIG. 33B. If the method described above is applied to a system of the form shown in FIG. 33B, then the disadvantage arises that pause packets may be sent from a switching hub which will affect not only the intended terminal but also other terminals, of a different group, which are also connected to that switching hub.
In the example of FIG. 33B, the switching hub SW2 constitutes a backbone switching hub, performing multiplexed control of a set of front-end switching hubs SW3, SW4, SW5, having ports directly connected to a set of Ethernet (T.M.) terminals A to I. Each of the ports P21, P22, P23 of hub SW2 is directly connected to one of the ports of the corresponding one of the switching hubs SW2, SW4, SW5.
It is assumed in FIG. 33B that while data packets are being transmitted from the terminals D and G of group #1 to the terminal A, the aforementioned input buffer overflow condition has occurred in the switching hub SW2, and that a pause packet is transmitted from the switching hub SW2 through the port P23 to the switching hub SW5. As a result, all transmission of data packets from the switching hub SW5 is halted. Thus, transmission of data packets from the terminal I of group #4 (for example to terminal F) via the ports P23, P22 of the switching hubs SW5 is also halted. Thus, data communication within a terminal group which is unrelated to the congestion condition of port P21 of SW5 is halted.
As an attempt to overcome this problem a method is described in Japanese Patent HEI 9-149065 whereby flow control is performed by sending a “back pressure” message, to a specific terminal. That is to say, when the rate of data packet flow into an input buffer of a port of a switching hub exceeds a predetermined threshold value, then based on the address of the terminal that is the source the most recent data packet to have entered the input buffer, a pause packet is transmitted only to that specific terminal.
However when such a flow control method is utilized, the problem remains that data packets may be lost, while in addition the above-mentioned problem may also occur whereby transfer of data packets may be inhibited between terminals belonging to a group which is unrelated to the cause of input buffer congestion. The reasons for these problems will be described referring first to the example shown in FIG. 34A. This shows the configuration of FIG. 33B adapted to conform to the description in the above Japanese Patent HEI 9-149065. Here it is assumed that overflow of the input buffer of port P23 of switching hub SW2 has occurred while group #1 data packets are being transmitted to terminal A from terminal D via port P41 of switching hub SW4 and from terminal G via port P51 of the switching hub SW5. As a result, a notification message is transmitted (as a congestion notification packet) which is addressed to the terminal G, i.e., to the terminal from which a data packet was being received at the time when the congestion condition occurred.
When that notification message is received by the switching hub SW5, it responds by generating and transferring a pause packet to the port P51, to be sent to the terminal G, thereby halting transmission of packets from that terminal.
In that condition, transmission from other terminals of the switching hub SW5, such as terminal I, continues to be possible. However if for example data packets begin to be transmitted from the terminal I to terminal F of group #4, through switching hub SW2, while the congestion condition of the input buffer of port P23 of SW2 continues, then this will result in a pause packet also being sent to the terminal I. Hence, transmission from terminal I (a terminal which is not within the group which has actually caused the data congestion) will be halted.
Furthermore FIG. 34B illustrates a case in which a large number of terminals G to M which are each within the same group (group #1) are connected to respective ports of the same switching hub SW5. In this case, if input buffer overflow occurs for port P23 of hub SW2 while hub SW5 is transferring data packets from the plurality of terminals G to M to the switching hub SW2, then the switching hub SW2 will successively transmit overflow notification packets respectively addressed to each of the terminals G to M. During the time interval in which these overflow notification packets are being successively transmitted, the switching hub SW2 will continue to receive data packets from the terminals G to M, until transmission from all of these has been halted. Thus, loss of data packets due to overflow of the input buffer of port P23 may still occur.